package com.jiao.store.mapper;

import com.jiao.store.entity.Address;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

//收货地址持久层接口
@Mapper
public interface AddressMapper {
    //1. 插入用户收获地址的数据
     Integer insert( Address address);

    /**
     * 根据用户的id 查询收货地址的数量
     * @param uid  用户的id
     * @return 当前用户的收获地址总数
     */

      Integer countByUid(Integer uid);

    /**根据用户id查询用户收获地址数据
     * @param uid
     * @return 返回值有多个地址， 所以数组
     */
    List<Address> findByUid(Integer uid);

    /**
     * 根据用户的aid查询收获地址数据
     * @param aid
     * @return 收获地址数据，如果没有则返回null
     */
    Address findByAid(Integer aid);

    /**
     * 根据用户的uid值来修改用户的地址，设置为非默认
     * @param uid   用户的id
     * @return 受影响的行数
     */
     Integer updateNonDefault(Integer uid);

    /**
     *
     * @param aid
     * @return
     */
     Integer  updateDefaultByAid(@Param("aid") Integer aid,
                                 @Param("modifiedUser") String modifiedUser,
                                 @Param("modifiedTime") Date modifiedTime);

    /**
     * 根据用户id来删除，
     * @param aid 收货地址id
     * @return  受影响的行数
     */
    Integer  delById(Integer aid);

    /**
     * 根据用户yid来查询用户最后一次被修改的收货地址数据
     * @param uid
     * @return 收获地址数据
     */
    Address  findLastModelFiled(Integer uid);



    Integer updateAddress(Address address);


}
